home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / f_list / f_list.bas < prev    next >
BASIC Source File  |  1993-07-08  |  16KB  |  473 lines

  1. 1000 '1992/06/23  File Name Lister  by 尋燐・ルナ
  2. 1010 '1992/12/23  最新バージョン  V2.04
  3. 1020 '1991/OH!FM TOWNS 新創刊 NO.1 p160 DIR.REX  伊藤哲史作 使用
  4. 1030 CLEAR ,,,,512
  5. 1040 DEFSTR A
  6. 1050 :
  7. 1060 GOSUB *初期化
  8. 1070 GOSUB *マシン語
  9. 1080 GOSUB *項目設定
  10. 1090 *MLOOP
  11. 1100 GOSUB *初期化2
  12. 1110 GOSUB *画面
  13. 1120 GOSUB *入力
  14. 1130 GOSUB *入力変換
  15. 1140 GOSUB *WINDO2
  16. 1150 I=14 :GOSUB *W2
  17. 1160 OPEN "O",#1,OF_N$
  18. 1170   GOSUB *MAIN
  19. 1180 CLOSE
  20. 1190 I=15 :GOSUB *W2
  21. 1200 :A=INPUT$(1) 
  22. 1210 :IF A="R" OR A="r" THEN *MLOOP 
  23. 1220 *終了
  24. 1230 SYSTEM
  25. 1240 :
  26. 1250 '----SUB----
  27. 1260 *初期化
  28. 1270 DEF FNFILE$(F$)=F$+CHR$(0)+STRING$(18-LEN(F$),"a")
  29. 1280 DMAX=9             :'##ディレクトリの最大深さ-1
  30. 1290 DIM F_N$(DMAX,150) :'##深さ別のDIR名LIST
  31. 1300 DIM C_N(DMAX)      :'##各深さのDIRの位置
  32. 1310 RETURN
  33. 1320 :
  34. 1330 *初期化2
  35. 1340  FCT=0  :FCT1=0:FCT2=0 :DIRC=0 
  36. 1350 '該当F数:総F数 :特殊F数:総DIR数
  37. 1360  DIR=0    :PASS$="\"
  38. 1370 'DIRの深さ:パス     
  39. 1380 F$=""  :'##ファイル名のワーク
  40. 1390 S=0    :'##1=DIR検索 / 0=ファイル検索
  41. 1400 RETURN
  42. 1410 :
  43. 1420 *項目設定
  44. 1430 'ウインド1
  45. 1440 W1C=13       :'##ウインド1の最大項目数
  46. 1450 DIM AW1(W1C) :'##項目名
  47. 1460 DIM SW1(W1C) :'##設定1
  48. 1470 DIM AW11(W1C):'##設定2
  49. 1480 RESTORE *設定DATA :FOR I=0 TO W1C :READ AW1(I),SW1(I),AW11(I) :NEXT
  50. 1490 'ウインド2
  51. 1500 DIM AH(W1C+2)  :'##HELPメッセージ
  52. 1510 RESTORE *HDATA :FOR I=0 TO W1C+2 :READ AH(I) :NEXT
  53. 1520 RETURN
  54. 1530 :
  55. 1540 *マシン語
  56. 1550 LOADM "DIR.REX",0
  57. 1560 MC1&=0 :MC2&=&HBB   :'##マシン語コールアドレス(1,2)
  58. 1570 FLAG&=1
  59. 1580 RETURN
  60. 1590 :
  61. 1600 '--------
  62. 1610 *画面
  63. 1620 SCREEN@ 0 :CLS :WIDTH 80,20
  64. 1630 PALETTE 9,[100,100,120]
  65. 1640 PALETTE 10,[180,180,180]
  66. 1650 PALETTE 11,[0,0,120]
  67. 1660 LINE (0,0)-(639,479),PSET,%9,BF
  68. 1670 SYMBOL (30,10),"ファイル   リスター",2,1,6,,,15
  69. 1680 SYMBOL (170,4),"N",1,1,5,,,7 :SYMBOL (180,9),"A",1,1,5,,,7
  70. 1690 SYMBOL (190,14),"M",1,1,5,,,7 :SYMBOL (200,19),"E",1,1,5,,,7
  71. 1700 SYMBOL (350,10),"V2.04",1,1,6,,,1,2
  72. 1710 SYMBOL (450,10),"HI-CCC",1,1,4,,,7
  73. 1720 SYMBOL (450,30),"製作者: 尋燐・ルナ",1,1,4,,,1
  74. 1730 LINE (35,40)-(435,40),PSET,%11
  75. 1740 CONNECT (435,5)-(405,60)-(620,60)-(610,50)-(610,70),%11
  76. 1750 GOSUB *WIND1
  77. 1760 X0=400 :Y0=105 :X1=600 :Y1=244 :GOSUB *ウインド
  78. 1770 COLOR 4 :LOCATE 57,4 :PRINT "メッセージ"
  79. 1780 X0=400 :Y0=298 :X1=600 :Y1=455 :GOSUB *ウインド
  80. 1790 COLOR 4 :LOCATE 57,12 :PRINT "処 理 経 過"
  81. 1800 COLOR 5 :LOCATE 51,13 :PRINT "該当File数   = ";FCT
  82. 1810 LOCATE 51,14 :PRINT "総ファイル数 = ";FCT1
  83. 1820 LOCATE 51,15 :PRINT "総DIR数   = ";DIRC
  84. 1830 LOCATE 51,16 :PRINT "特殊File数   = ";FCT2
  85. 1840 LOCATE 51,17 :PRINT "PASS  [ 1         2 ]"
  86. 1850 LOCATE 51,18 :PRINT "DIRの深さ :"
  87. 1860 RETURN
  88. 1870 :
  89. 1880 *ウインド
  90. 1890 CONNECT (X0,Y1)-(X0,Y0)-(X1,Y0),%10
  91. 1900 CONNECT (X0-1,Y1)-(X0-1,Y0-1)-(X1+1,Y0-1),%10
  92. 1910 CONNECT (X0,Y1)-(X1,Y1)-(X1,Y0),0
  93. 1920 CONNECT (X0-1,Y1+1)-(X1+1,Y1+1)-(X1+1,Y0-1),0
  94. 1930 X0=X0+30 :X1=X0+140 :Y0=Y0-14 :Y1=Y0+24
  95. 1940 LINE (X0,Y0)-(X1,Y1),PSET,%9,BF
  96. 1950 CONNECT (X0,Y1)-(X0,Y0)-(X1,Y0),%10
  97. 1960 CONNECT (X0-1,Y1-12)-(X0-1,Y0+1)-(X1+1,Y0+1),%10
  98. 1970 CONNECT (X0,Y1)-(X1,Y1)-(X1,Y0+1),0
  99. 1980 CONNECT (X1+1,Y1-12)-(X1+1,Y0+1),0
  100. 1990 RETURN
  101. 2000 :
  102. 2010 *WIND1
  103. 2020 X0=50 :Y0=82 :X1=350 :Y1=450 :GOSUB *ウインド
  104. 2030 COLOR 4 :LOCATE 13,3 :PRINT AW1(0)
  105. 2040 FOR I=1 TO W1C
  106. 2050  X0=60 :Y0=93+I*24 :X1=190 :Y1=90+(I+1)*24
  107. 2060  CONNECT (X0,Y1)-(X0,Y0)-(X1,Y0),%10
  108. 2070  CONNECT (X0,Y1)-(X1,Y1)-(X1,Y0),0
  109. 2080  COLOR 6 :LOCATE 9,4+I :PRINT AW1(I);
  110. 2090  IF SW1(I)<0  THEN LOCATE 27,4+I :PRINT AW11(I); 
  111. 2100  IF SW1(I)=-2 THEN PRINT ":"
  112. 2110  IF SW1(I)>=0 THEN LOCATE 25,4+I :PRINT "   する   しない" 
  113. 2120  GOSUB *SW1
  114. 2130 NEXT
  115. 2140 RETURN
  116. 2150 :
  117. 2160 *SW1
  118. 2170 IF SW1(I)>=0 THEN 2260
  119. 2180 IF SW1(I)<-2 OR SW1(I)>1 THEN RETURN
  120. 2190 IX0=205 :IY0=93+I*24 :IY1=90+(I+1)*24
  121. 2200 IF SW1(I)=-1  THEN IX1=IX0+120
  122. 2210 IF SW1(I)=-2  THEN IX1=IX0+30
  123. 2220 IF SW1(11)=0 AND (I=5 OR I=6) THEN I0=9 :I1=9 ELSE I0=0 :I1=10
  124. 2230  CONNECT (IX0,IY1)-(IX0,IY0)-(IX1,IY0),%I0 :CONNECT (IX0,IY1)-(IX1,IY1)-(IX1,IY0),%I1
  125. 2240 RETURN
  126. 2250 :
  127. 2260 IX0=210 :IX1=274 :IY0=93+I*24 :IY1=90+(I+1)*24 
  128. 2270 IF SW1(I) THEN 2330
  129. 2280  CONNECT (IX1,IY1)-(IX1,IY0)-(IX1+60,IY0),0 
  130. 2290  CONNECT (IX1,IY1)-(IX1+60,IY1)-(IX1+60,IY0),%10
  131. 2300  CONNECT (IX0,IY1)-(IX0,IY0)-(IX0+57,IY0),%9 
  132. 2310  CONNECT (IX0,IY1)-(IX0+57,IY1)-(IX0+57,IY0),%9
  133. 2320  RETURN
  134. 2330 :CONNECT (IX0,IY1)-(IX0,IY0)-(IX0+57,IY0),0 
  135. 2340  CONNECT (IX0,IY1)-(IX0+57,IY1)-(IX0+57,IY0),%10
  136. 2350  CONNECT (IX1,IY1)-(IX1,IY0)-(IX1+60,IY0),%9 
  137. 2360  CONNECT (IX1,IY1)-(IX1+60,IY1)-(IX1+60,IY0),%9
  138. 2370  RETURN
  139. 2380 :
  140. 2390 *設定DATA
  141. 2400 DATA "各 種 設 定"   ,-3,""
  142. 2410 DATA "検索ドライブ"  ,-2,"D"
  143. 2420 DATA " 〃 条件"      ,-1,"*.*"
  144. 2430 DATA "出力先Drive名" ,-2,"D"
  145. 2440 DATA "  〃  File名"  ,-1,"リスト.TXT"
  146. 2450 DATA "Copy先Drive名" ,-2,"A"
  147. 2460 DATA "  〃  DIR名"   ,-1,"\BUCKUP\"
  148. 2470 DATA "1・分離表示"    , 0,""
  149. 2480 DATA "2・フルパス表示", 1,""
  150. 2490 DATA "3・属性の表示"  , 0,""
  151. 2500 DATA "4・DIRも表示"   , 0,""
  152. 2510 DATA "5・COPYコマンド", 0,""
  153. 2520 DATA "6・DELコマンド" , 0,""
  154. 2530 DATA "7・特殊FILE検索", 0,""
  155. 2540 :
  156. 2550 *WINDO2
  157. 2560 I=0
  158. 2570 GOSUB *W2
  159. 2580 PRINT SPACE$(24)
  160. 2590 A=INPUT$(1)
  161. 2600  IF A="N" OR A="n" THEN *終了
  162. 2610  IF A=" " THEN RUN
  163. 2620  IF A="O" OR A="o" THEN *OMAKE
  164. 2630  IF A<>"Y" AND A<>"y" THEN 2590
  165. 2640 RETURN
  166. 2650 :
  167. 2660 *WIND2
  168. 2670 I=NO
  169. 2680 GOSUB *W2
  170. 2690 PRINT "<'ESCキー'で実行・取消>"
  171. 2700 RETURN
  172. 2710 :
  173. 2720 *W2
  174. 2730 COLOR 7
  175. 2740 A=AH(I)+SPACE$(40)
  176. 2750 FOR I0=1 TO 4
  177. 2760  LOCATE 52,4+I0
  178. 2770  PRINT MID$(A,I0*22-21,22)
  179. 2780 NEXT
  180. 2790 COLOR 5 :LOCATE 51,9 
  181. 2800 RETURN
  182. 2810 :
  183. 2820 *HDATA
  184. 2830 DATA "Y ・・・・ 検索を開始するN ・・・・ 中止する      SPC・・・・ 設定をし直す O ・・・・ おまけ"
  185. 2840 DATA "検索先のドライブ名を←→もしくはA~Qキーで選んでください。"
  186. 2850 DATA "検索条件をワイルドカード等で指定してください。*.*で全てのリストがでます。"
  187. 2860 DATA "リスト出力先のドライブ名を←→もしくはA~Qキーで選んでください。"
  188. 2870 DATA "リストのファイル名を入力して下さい。カレントディレクトリにセーブします。"
  189. 2880 DATA "COPYコマンド時のCOPY先ドライブ名を←→もしくはA~Qキーで選んでください。"
  190. 2890 DATA "COPY時のCOPY先ディレクトリを入力してください。例(\BUCKUP\)   (\)等DIR の作成はしない。"
  191. 2900 DATA "パスとファイル名を分離する。プログラム中で使用する時便利。他の条件より最優先する。"
  192. 2910 DATA "ファイル名をフルパス付きでリストする。[しない]だとファイル名のみの出力。"
  193. 2920 DATA "リストに属性を付ける。[advshr]の有無がわかる。詳しくは何かの本を見てください。"
  194. 2930 DATA "リストにサブディレクトリ名も表示する。DISK内の構造を知るのに便利...かも?"
  195. 2940 DATA "COPYコマンドを付けてBAT FILEにする。COPY先は同ディレクトリ内なので同FILE名は消される。"
  196. 2950 DATA "DEL コマンドを付ける。6・も指定するとCOPY後DEL するBAT FILEを作成する。"
  197. 2960 DATA "特殊ファイル(隠し・システム)も検索の対象にするかどうか。リードオンリーは含まない。"
  198. 2970 :
  199. 2980 DATA "<只今、実行中です!>CDだと10分以上掛かることがあります。しばらくお待ち下さい。"
  200. 2990 DATA "<終了いたしました。>何かキーを押すとプログラムを終了いたします。 R=再実行"
  201. 3000 :
  202. 3010 *入力
  203. 3020 NO=1 :ONO=10
  204. 3030 *IN0
  205. 3040  IF NO<1 THEN NO=W1C
  206. 3050  IF NO>W1C THEN NO=1
  207. 3060  GOSUB *WIND2
  208. 3070  LOCATE 9,4+ONO :COLOR 6 :PRINT AW1(ONO)
  209. 3080  LOCATE 9,4+NO :COLOR 5 :PRINT AW1(NO)
  210. 3090 ONO=NO
  211. 3100 *IN1
  212. 3110 A=INPUT$(1)
  213. 3120  IF A=CHR$(27) THEN RETURN
  214. 3130  IF A=" " THEN CLOSE:END
  215. 3140  IF A=CHR$(&H1F) THEN NO=NO+1 :GOTO *IN0
  216. 3150  IF A=CHR$(&H1E) THEN NO=NO-1 :GOTO *IN0
  217. 3160  IF SW1(NO)=-2 THEN *IN3  '##ドライブ名
  218. 3170  IF SW1(NO)=-1 THEN *IN4  '##ファイル名
  219. 3180  IF SW1(NO)>=0 THEN *IN2  '##設定ON-OFF
  220. 3190 GOTO *IN0
  221. 3200 :
  222. 3210 *IN2
  223. 3220 IF A<>CHR$(&H1C) AND A<>CHR$(&H1D) THEN *IN1 
  224. 3230 SW1(NO)=-(SW1(NO)=0)
  225. 3240 IF SW1(7) THEN SW1(8)=1 :SW1(9)=0 :SW1(10)=0 :SW1(11)=0 :SW1(12)=0
  226. 3250 IF SW1(11) OR SW1(12) THEN SW1(8)=1 :SW1(9)=0 :SW1(10)=0 
  227. 3260 FOR I=1 TO W1C :GOSUB *SW1 :NEXT :GOTO *IN1
  228. 3270 *IN3
  229. 3280 IF A<="S" AND A>="A" THEN A0=A :GOTO 3330 
  230. 3290 IF A<="s" AND A>="a" THEN A0=CHR$(ASC(A)-&H20) :GOTO 3330 
  231. 3300 A0=CHR$(ASC(AW11(NO))-(A=CHR$(&H1C))+(A=CHR$(&H1D)))
  232. 3310 IF A0<"A" THEN A0="Q"
  233. 3320 IF A0>"S" THEN A0="A"
  234. 3330 AW11(NO)=A0 :COLOR 6 :LOCATE 27,4+NO :PRINT AW11(NO);":" 
  235. 3340 GOTO *IN1
  236. 3350 *IN4
  237. 3360 IF A<>CHR$(13) AND A<>CHR$(&H1C) THEN *IN1
  238. 3370 COLOR 7 :LOCATE 27,4+NO
  239. 3380 LINE INPUT "",A0
  240. 3390 IF A0="" THEN *IN1
  241. 3400 COLOR 6 :LOCATE 27,4+NO
  242. 3410 IF LEN(A0)>12 THEN A0=LEFT$(A0,12)
  243. 3420 AW11(NO)=A0 :PRINT A0+SPACE$(13)
  244. 3430 GOTO *IN1
  245. 3440 :
  246. 3450 *入力変換
  247. 3460 DRIVE$=AW11(1)+":" :'##検索DRIVE
  248. 3470 WILD$=AW11(2)      :'##検索条件
  249. 3480  IF AW11(3)="S" THEN AW11(3)="SCRN" 
  250. 3490 OF_N$=AW11(3)+":\"+AW11(4) :'##出力FAIL名
  251. 3500 CP_N$=AW11(5)+":"+AW11(6)  :'##COPY先名
  252. 3510 FRG1=SW1(7) :'##分離表示
  253. 3520 FRG2=SW1(8) :'##フルパスの表示
  254. 3530 FRG3=SW1(9) :'##属性の表示
  255. 3540 FRG4=SW1(10) :'##リストにDIRも表示する
  256. 3550 FRG5=SW1(11) :'##COPYコマンドの付加
  257. 3560 FRG6=SW1(12) :'##DELコマンドの付加
  258. 3570 FRG7=SW1(13) :'##特殊ファイルの検索
  259. 3580 :
  260. 3590 IF FRG1 THEN FRG2=1 :FRG3=0 :FRG4=0 :FRG5=0 :FRG6=0
  261. 3600 IF FRG5 OR FRG6 THEN FRG2=1 :FRG3=0 :FRG4=0 
  262. 3610 RETURN
  263. 3620 :
  264. 3630 '-----
  265. 3640 *MAIN
  266. 3650 COLOR 7
  267. 3660 SHELL DRIVE$
  268. 3670 SHELL "CHDIR \"
  269. 3680 GOSUB *DIR_CALL
  270. 3690 LOCATE 65,13 :PRINT FCT
  271. 3700 LOCATE 65,14 :PRINT FCT1
  272. 3710 LOCATE 65,15 :PRINT DIRC
  273. 3720 LOCATE 65,16 :PRINT FCT2
  274. 3730  IF C_N(DIR)=0 THEN 3790 
  275. 3740 '##DIRが有れば子DIRに移る
  276. 3750   SHELL "CHDIR "+F_N$(DIR,C_N(DIR))
  277. 3760   DIR=DIR+1 :LOCATE 63+DIR,18 :PRINT "* "
  278. 3770   GOTO 3680
  279. 3780 '##DIRが無ければ親に移る
  280. 3790   DIR=DIR-1 :LOCATE 63+DIR,18 :PRINT "* "
  281. 3800   IF DIR<0 THEN 3850
  282. 3810   C_N(DIR)=C_N(DIR)-1
  283. 3820   SHELL "CHDIR .." 
  284. 3830   IF C_N(DIR)=0 THEN 3790 
  285. 3840   GOTO 3750
  286. 3850 LOCATE 62,18 :PRINT " 終了"
  287. 3860 RETURN 
  288. 3870 :
  289. 3880 '----1ディレクトリ内の検索----
  290. 3890 *DIR_CALL
  291. 3900 :
  292. 3910 PASS$="\" :I=0
  293. 3920  IF I<DIR THEN PASS$=PASS$+F_N$(I,C_N(I))+"\" :I=I+1 :GOTO 3920
  294. 3930 S=0:F$=FNFILE$(WILD$)
  295. 3940   LOCATE 62,17 :PRINT "● ―"
  296. 3950   GOSUB *M_CALL1
  297. 3960   GOSUB *M_CALL2 
  298. 3970 S=1:F$=FNFILE$("*.*")
  299. 3980 DCT=0  :'##ディレクトリカウンタ
  300. 3990   LOCATE 62,17 :PRINT "― ●"
  301. 4000   GOSUB *M_CALL1
  302. 4010   GOSUB *M_CALL2 
  303. 4020 C_N(DIR)=DCT
  304. 4030   LOCATE 62,17 :PRINT "― ― "
  305. 4040 RETURN
  306. 4050 :
  307. 4060 '----マシン語のコール----
  308. 4070 *M_CALL1
  309. 4080 FLAG&=1
  310. 4090 CALLM MC1&,VARPTR(F$),VARPTR(FLAG&)
  311. 4100  IF FLAG&<>0 THEN GOSUB *F_OUT
  312. 4110 RETURN
  313. 4120 :
  314. 4130 *M_CALL2
  315. 4140 CALLM MC2&,VARPTR(F$),VARPTR(FLAG&)
  316. 4150  IF FLAG&<>0 THEN GOSUB *F_OUT :GOTO *M_CALL2
  317. 4160 RETURN
  318. 4170 :
  319. 4180 '----データの分離----
  320. 4190 *F_OUT
  321. 4200 A0=RIGHT$(F$,6)  :'##情報
  322. 4210 A=LEFT$(F$,8)    :'##ファイル名
  323. 4220 :I=1
  324. 4230 :IF MID$(A,I,1)<>" " AND I<=8 THEN I=I+1 :GOTO 4230
  325. 4240 :A1=LEFT$(A,I-1)
  326. 4250 A=MID$(F$,10,3)  :'##拡張子
  327. 4260 :IF A="   " THEN A2="" :GOTO 4300
  328. 4270 :I=1
  329. 4280 :IF MID$(A,I,1)<>" " AND I<=3 THEN I=I+1 :GOTO 4280
  330. 4290 :A2="."+LEFT$(A,I-1)
  331. 4300 IF A1="." OR A1=".." THEN RETURN
  332. 4310 IF MID$(A0,3,1)="v" THEN RETURN
  333. 4320 A3=A1+A2  :'##新F名
  334. 4330 :
  335. 4340 IF S THEN *FSD ELSE *FNAME
  336. 4350 :
  337. 4360 '----ディレクトリの検索----
  338. 4370 *FSD
  339. 4380 IF MID$(A0,2,1)<>"d" THEN FCT1=FCT1+1:RETURN  :'##総F数
  340. 4390 DIRC=DIRC+1  :'##総DIR数
  341. 4400 DCT=DCT+1
  342. 4410 F_N$(DIR,DCT)=A1
  343. 4420 AP=""
  344. 4430 IF FRG3 THEN AP=AP+A0+" "  :'##属性表示
  345. 4440 IF FRG2 THEN AP=AP+PASS$   :'##フルパス表示
  346. 4450 IF FRG4 THEN PRINT #1,AP+A3
  347. 4460 RETURN
  348. 4470 :
  349. 4480 '----ファイル名の検索----
  350. 4490 *FNAME
  351. 4500 IF MID$(A0,2,1)="d" THEN RETURN
  352. 4510 IF MID$(A0,4,1)="s" OR MID$(A0,5,1)="h" THEN FCT2=FCT2+1 :IF FRG7=0 THEN RETURN 
  353. 4520 FCT=FCT+1  :'##該当F数
  354. 4530 AP="" :A4="" :A5=""
  355. 4540 IF FRG3 THEN AP=AP+A0+" "  :'##属性表示
  356. 4550 IF FRG2 THEN AP=AP+PASS$   :'##フルパス表示
  357. 4560 IF FRG5 THEN A4="COPY "+DRIVE$ :A5=" "+CP_N$ :'##COPYコマンドの付加
  358. 4570 :
  359. 4580 IF FRG1 THEN PRINT #1,AP :PRINT #1,A3 :RETURN
  360. 4590 IF FRG6=0 OR (FRG5*FRG6) THEN PRINT #1,A4+AP+A3+A5
  361. 4600 IF FRG6 THEN PRINT #1,"DEL "+DRIVE$+AP+A3
  362. 4610 RETURN
  363. 4620 :
  364. 4630 '------  E  N  D  --------
  365. 4640 :
  366. 4650 *OMAKE
  367. 4660 KEY 5,"リスト.TXT"
  368. 4670 SCREEN@ 0 :CLS :COLOR 5
  369. 4680 PRINT "***  FILE NAME LISTER  ***"
  370. 4690 PRINT "***              おまけ  コーナー         ***"
  371. 4700 PRINT "***           1993/01/05 by 尋燐・ルナ      ***"
  372. 4710 PRINT 
  373. 4720 COLOR 7
  374. 4730 PRINT " 1 ・・・・・ フルパスリストにドライブ番号を付ける。"
  375. 4740 PRINT " 2 ・・・・・ TIFファイルを連続して見る。"
  376. 4750 PRINT " 3 ・・・・・ 注意事項"
  377. 4760 PRINT " 4 ・・・・・ メインプログラムに戻る。"
  378. 4770 PRINT 
  379. 4780 PRINT " <どれを選択しますか?> "
  380. 4790 A=INPUT$(1)
  381. 4800 :IF A="1" THEN *ADD
  382. 4810 :IF A="2" THEN *TIF 
  383. 4820 :IF A="3" THEN *注意 
  384. 4830 :IF A="4" THEN RUN
  385. 4840 :GOTO 4790
  386. 4850 :
  387. 4860 *TIF
  388. 4870 PRINT :PRINT :PRINT :COLOR 5 
  389. 4880 PRINT "***   簡易TIFファイル表示   ***"
  390. 4890 PRINT "***     by 尋燐・ルナ        ***"
  391. 4900 PRINT "注)SCREEN@ 0-3 以外の画面モードには対応してません。  "
  392. 4910 PRINT :COLOR 7 
  393. 4920 LINE INPUT ">リストの名は(フルパスで)_ ";F$
  394. 4930 PRINT "-リストにドライブ番号が含まれている時はret.のみ-"
  395. 4940 INPUT ">表示するドライブは_ ";AD
  396. 4950 IF LEN(AD)>0 THEN AD=LEFT$(AD,1)+":" ELSE AD=""
  397. 4960 DIM FF$(1000)
  398. 4970 MAX=1
  399. 4980 OPEN "I",#1,F$
  400. 4990   IF EOF(1)=0 THEN LINE INPUT #1,FF$(MAX) :MAX=MAX+1 :GOTO 4990
  401. 5000 CLOSE
  402. 5010 PRINT "ファイルは ";MAX;"ありました。"
  403. 5020 ON ERROR GOTO 5120
  404. 5030 S=0 :SCREEN@ S :CLS
  405. 5040 FOR I=1 TO MAX
  406. 5050   C=1
  407. 5060   LOAD@ AD+FF$(I)
  408. 5070   LOCATE 0,0 :PRINT I
  409. 5080 NEXT
  410. 5090 ON ERROR GOTO 0
  411. 5100 WAIT 200
  412. 5110 GOTO *OMAKE
  413. 5120 '-err
  414. 5130 IF NOT(ERL=5060 AND ERR=112) THEN RESUME NEXT
  415. 5140 C=C+1 :LOCATE 0,0 :PRINT "ERR!"
  416. 5150 IF C=4 THEN RESUME NEXT
  417. 5160 S=S-1 :IF S=-1 THEN S=2
  418. 5170 SCREEN@ S
  419. 5180 RESUME 
  420. 5190 :
  421. 5200 *ADD
  422. 5210 AZ="ZZZZZZZZ.ZZZ"
  423. 5220 PRINT :PRINT :PRINT :COLOR 5 
  424. 5230 PRINT "***   ドライブ番号の付加    ***"
  425. 5240 PRINT "***      by 尋燐・ルナ       ***"
  426. 5250 PRINT :COLOR 7 
  427. 5260 LINE INPUT ">変更するリストのフルパスは、(ファイル名は省く)_ ";AP
  428. 5270 LINE INPUT ">                ファイル名は、_ ";AF
  429. 5280 LINE INPUT ">付加するドライブ名は、_ ";AD
  430. 5290 AD=LEFT$(AD,1)+":"
  431. 5300 PRINT "...実行中!"
  432. 5310 PRINT "...古いファイル名の変更"
  433. 5320 NAME AP+AF AS AZ
  434. 5330 PRINT "...リストの書換え" 
  435. 5340 PRINT ">";
  436. 5350 OPEN "I",#1,AP+AZ
  437. 5360  OPEN "O",#2,AP+AF
  438. 5370    LINE INPUT #1,A
  439. 5380    A=AD+A :PRINT ".";
  440. 5390    PRINT #2,A
  441. 5400    IF EOF(1)=0 THEN 5370 
  442. 5410  CLOSE #2
  443. 5420 CLOSE #1
  444. 5430 KILL AP+AZ
  445. 5440 PRINT :PRINT "...終了しました"
  446. 5450 WAIT 100
  447. 5460 GOTO *OMAKE
  448. 5470 :
  449. 5480 *注意
  450. 5490 CLS :COLOR 5
  451. 5500 PRINT "***  FILE NAME LISTER  ***"
  452. 5510 PRINT "***     注 意 事 項        ***"
  453. 5520 PRINT "***        by 尋燐・ルナ        ***"
  454. 5530 PRINT :COLOR 7 
  455. 5540 PRINT "<この度このプログラムを使用していただき誠に有り難うございます。"
  456. 5550 PRINT "   以下に簡単な使用上の注意をあげておきます。>"
  457. 5560 PRINT 
  458. 5570 PRINT "・当プログラムは恐ろしいほどエラーチェックをしておりません。"
  459. 5580 PRINT "  (ドライブの確認、ファイル名、ワイルドカード等)"
  460. 5590 PRINT "  サイドワーク(ファイル操作)等で確認してください。"
  461. 5600 PRINT "・ESCキーを押したかとの選択は仮名、全角になっているとそのまま終了してし"
  462. 5610 PRINT "  しまいます。英大、英小で選択してください。"
  463. 5620 PRINT "・CDの検索には時間が掛かります。特にGNUは超最悪です。23736ファイル"
  464. 5630 PRINT "  約30分かかります。他は大体10分以下です。"
  465. 5640 PRINT "・裏技としてリスト出力先にSを指定するとスクリーンに表示されます。"
  466. 5650 PRINT "  但しテスト用なので画面が乱れます。"
  467. 5660 PRINT "・裏技2としてリスト出力をルートディレクトリでなくサブDIRに出来ます。"
  468. 5670 PRINT "  ファイル名の欄にフルパスで記入してください。"
  469. 5680 A=INPUT$(1)
  470. 5690 GOTO *OMAKE
  471. 5700 :
  472. 5710 '---------------  e n d --------------
  473.